package io.coderyeah.org.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 * (TDepartment)表实体类
 *
 * @author makejava
 * @since 2022-08-31 11:38:39
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department extends BaseDomain{
    //部门编号
    private String sn;
    //部门名称
    private String name;
    //部门的上级分类层级id
    private String dirpath;
    //部门状态 1启用，0禁用
    private Integer state;
    //部门管理员，关联Employee表id
    private Long managerId;
    //上级部门id
    private Long parentId;

    // 部门管理员
    @TableField(exist = false)
    private Employee employee;
    // 上级部门
    @TableField(exist = false)
    private Department department;

    //部门无限级树 过滤空的集合
    @TableField(exist = false)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    List<Department> children = new ArrayList<>();
}

